﻿using System;
using System.Collections;
using Huirui.Cavan.Domain.MainBoundedContext.SystemModule;
using System.Collections.Generic;
using Huirui.Cavan.Domain.Seedwork;

namespace Huirui.Cavan.Domain.MainBoundedContext.StockModule
{
    #region StockAllocate

    /// <summary>
    /// StockAllocate object for NHibernate mapped table 'StockAllocate'.
    /// </summary>
    [Serializable]
    public class StockAllocate : Persistent<string>
    {
        #region Member Variables

        protected DateTime _allocateDate;
        protected string _remark;
        protected Corporation _corporation;
        protected StockInOut _stockIn;
        protected StockInOut _stockOut;
        protected string _productionNumber;
        #endregion

        #region Constructors

        public StockAllocate() { }

        public StockAllocate(string id, DateTime allocateDate, string remark, DateTime createDate, DateTime modifyDate, int editUser, Corporation corporation, StockInOut stockIn, 
            StockInOut stockOut, string productionNumber)
        {
            this.Id = id;
            this._allocateDate = allocateDate;
            this._remark = remark;
            this._createDate = createDate;
            this._modifyDate = modifyDate;
            this._editUser = editUser;
            this._corporation = corporation;
            this._stockIn = stockIn;
            this._stockOut = stockOut;
            this._productionNumber = productionNumber;
        }

        #endregion

        #region Public Properties

        public virtual DateTime AllocateDate
        {
            get { return _allocateDate; }
            set { _allocateDate = value; }
        }

        public virtual string Remark
        {
            get { return _remark; }
            set
            {
                _remark = value;
            }
        }

        public virtual Corporation Corporation
        {
            get { return _corporation; }
            set { _corporation = value; }
        }

        public virtual StockInOut StockIn
        {
            get { return _stockIn; }
            set { _stockIn = value; }
        }

        public virtual StockInOut StockOut
        {
            get { return _stockOut; }
            set { _stockOut = value; }
        }

        public virtual string ProductionNumber
        {
            get { return _productionNumber; }
            set { _productionNumber = value; }
        }
        #endregion
    }
    #endregion
}